﻿#ifndef HOURGLASSWIDGET_H
#define HOURGLASSWIDGET_H

#include <QWidget>
#include <QTimer>
#include <QGraphicsItem>
#include <QElapsedTimer>

class HourGlassWidget : public QWidget
{
    Q_OBJECT
public:
    explicit HourGlassWidget(QWidget *parent = nullptr);
    ~HourGlassWidget();

    /**
     * @brief start 启动
     */
    void start();

    /**
     * @brief stop 停止
     */
    void stop();

    /**
     * @brief reset 重置
     */
    void reset();

protected:
    void paintEvent(QPaintEvent *event) override;

signals:

private slots:
    /**
     * @brief updateSand 更新沙漏
     */
    void updateSand();

private:
    /**
     * @brief timer_ 定时器对象
     */
    QTimer *timer_;

    /**
     * @brief time_ 时间对象
     */
    QElapsedTimer elapsedTimer_;

    /**
     * @brief sandAmount 0-1 表示沙子流动的进度
     */
    double sandAmount_;

    /**
     * @brief isRuning_ 沙漏是否在运行
     */
    bool isRuning_;

    /**
     * @brief totalTime_ 总时间（秒）
     */
    int totalTime_;
};

#endif // HOURGLASSWIDGET_H
